package 集合进阶.双列集合.TreeMap集合;

import java.util.Map;
import java.util.Set;
import java.util.TreeMap;

public class 统计字符个数 {
    public static void main(String[] args) {
        //需求:统计每个字符出现的顺序且输出要求字符串要从小到大进行输出
        //1.定义一个字符串
        String str="aababcabcdabcde";
        //2.创建一个TreeMap集合
        TreeMap<Character,Integer> tm=new TreeMap<>();
        //3.转换字符串为字符数组
        char[] array = str.toCharArray();
        //4.将字符添加到集合中,且统计个数
        for (char c : array) {
            if (tm.containsKey(c)){
                //在集合中包含这个键
                //获取原来键所对印的值
                Integer count = tm.get(c);
                count++;
                //更改新的键值
                tm.put(c,count);
            }else {
                //在集合中不包含这个键
                tm.put(c,1);
            }
        }
       //5.按照题目的要求打印字符
        //获取每一个键值对
        Set<Map.Entry<Character, Integer>> es = tm.entrySet();
        //遍历键值对
        for (Map.Entry<Character, Integer> e : es) {
            System.out.print(e.getKey()+"("+e.getValue()+")");//a(5)b(4)c(3)d(2)e(1)
        }
    }
}
